package Set_and_Dict;

import java.util.HashMap;
import java.util.HashSet;

/*
有效的字母异位词
给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的 字母异位词。
示例1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false

作者：LeetCode
链接：https://leetcode.cn/leetbook/read/all-about-lockup-table/f4o67/
 */

public class _22有效的字母异位词 {
    public static void main(String[] args) {

    }

    //用HashMap记录的字典法
    public boolean isAnagram(String s, String t) {
        if (t.length() != s.length()) return false;
        HashMap<Character, Integer> dict = new HashMap();
        for (int i = 0; i < s.length(); i++) {
            if (dict.containsKey(s.charAt(i))) {
                dict.put(s.charAt(i), dict.get(s.charAt(i)) + 1);
            } else {
                dict.put(s.charAt(i), 1);
            }
        }
        for (int i = 0; i < t.length(); i++) {
            if (!dict.containsKey(t.charAt(i))) {
                return false;
            } else {
                dict.put(t.charAt(i), dict.get(t.charAt(i)) - 1);
                if (dict.get(t.charAt(i)) < 0) return false;
            }
        }
        return true;
    }
}
